/*
**  File: AquaFuncts_dr.h
*/
void InitDRList( DRList *list );
Boolean ProcessDRInput( DRList *DR_list, char *DR_type, Card DR_ident );
Boolean MapDRInput( DRList *DR_list, Mol *molptr, const int struc_count );
void ProcessDROutput( DRList *DR_list, const int skip_count, char *DR_type,
                      const Boolean toscreen, Mol *molptr, const int struc_count );
int DRestraintCount( FILE *fp, const Filtyp type );
DRestraint *ReadDRestraints( FILE *fp, const Filtyp type, char *DR_type,
                             const int count, Card ident );
Boolean WriteDRestraints( FILE *fp, const Filtyp type, DRList *theList,
                          char *DR_type, const int skip_count,
		          Card ident, char *format );
void InitDRestraints( DRestraint *DRs, int count );
void PrintDRList( DRList *DR_list );
void PrintDRestraints( DRestraint *DRs, int count );
void MapCopyInDRestraints( DRestraint *DRs, int count );
Boolean MapAtomsInDRestraints( DRList *theList, const int how, char *lib_nam,
                               Mol *molptr, const int struc_count );
Boolean MapAtomsIn1DR( DRestraint *DRall, const int DRcount, Atomptr *atomptrs,
                       const int how, char *lib_nam_orig, Filnam predef_nam,
		       Mol *molptr );
void MakeDRList( DRList *theList, Distinf *dist_inf, Distrst *dist_rst,
                 const int dist_count, Atom *atoms );
int SelectRestraints( DRList *DR_list, Mol *molptr );
void SortRestraints( DRList *DR_list, Boolean classify );
int CleanupDRList( DRList *theList, const int skip_count, int *exit_flag );
